package com.gcb.domain.dto;

import cn.hutool.core.lang.RegexPool;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * @author linying
 * @description 码头信息表
 * @date 2024-03-12
 */
@Data
public class WharfSaveDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Long id;

    /**
     * 码头名称
     */
    @NotBlank(message = "码头名称不能为空")
    private String wharfName;

    /**
     * 商户id
     */
    @NotNull(message = "归属商户不能为空")
    private Long businessesId;

    /**
     * 所属港区
     */
    @NotBlank(message = "所属港区不能为空")
    private String portName;

    /**
     * 码头简介
     */
    @NotBlank(message = "码头简介不能为空")
    private String wharfInfo;

    /**
     * 省份
     */
    @NotBlank(message = "省份不能为空")
    private String province;

    /**
     * 城市
     */
    @NotBlank(message = "城市不能为空")
    private String city;

    /**
     * 区
     */
    @NotBlank(message = "区不能为空")
    private String district;

    /**
     * 详细地址
     */
    @NotBlank(message = "详细地址不能为空")
    private String address;

    /**
     * 经度
     */
    @NotBlank(message = "经度不能为空")
    private String longitude;

    /**
     * 纬度
     */
    @NotBlank(message = "纬度不能为空")
    private String latitude;

    /**
     * 岸线长度
     */
    @NotNull(message = "岸线长度不能为空")
    @Size(message = "岸线长度必须大于0")
    private Long coastlineLength;

    /**
     * 前沿高度
     */
    @NotNull(message = "前沿高度不能为空")
    @Size(message = "靠泊高度必须大于0")
    private Long pierFrontHeight;

    /**
     * 泊位数量
     */
    @NotNull(message = "靠泊数量不能为空")
    @Size(message = "靠泊数量必须大于0")
    private Long berthNum;

    /**
     * 靠泊吨位
     */
    @NotNull(message = "靠泊吨位不能为空")
    @Size(message = "靠泊吨位必须大于0")
    private Long berthTonnage;

    /**
     * 货物种类
     */
    @NotBlank(message = "货物种类不能为空")
    private String cargoType;

    /**
     * 吊装机械
     */
    @NotBlank(message = "吊装机械不能为空")
    private String hoistingMachinery;

    /**
     * 提供的服务
     */
    private String providedServices;

    /**
     * 码头照片
     */
    private String photoList;

    /**
     * 联系人
     */
    @NotBlank(message = "联系人不能为空")
    private String contacts;

    /**
     * 联系人手机号
     */
    @NotBlank(message = "联系人手机号不能为空")
    @Pattern(regexp = RegexPool.MOBILE, message = "手机号格式不正确")
    private String contactPhone;


}
